A move in the game referes to movement of a box. The location of the boxes represent the state of a game. At times, the empty space in the board gets divided into disjoint areas. In these scenarios, the player in each disjoint area is a different state in the game. So along with the box positions we also store the area information of the player. 
By excluding the player position from the state and only including the area information to compare states, we immediately reduce the graph size. This leads to an optimization in memory space and computation time.

A node in the search tree referes to the state which is reached by a performed move. All the possibles moves form the branches for the next level. 


